"""服务端"""

"""jupyter notebook中，不利于实验网络编程代码，请将下面代码复制到 Pycharm 中进行展示："""

from socket import *

# 建立 TCP套接字
server_socket = socket(AF_INET, SOCK_STREAM)  

server_socket.bind(("127.0.0.1", # 本机的IP，可不填
                    8899))  # 接收信息的端口号

# 配置监听信息 -- 最多建立 5个连接
server_socket.listen(5)

# 程序阻塞，等待客户端建立连接
print("等待接收连接！")
client_socket, client_info = server_socket.accept() # 返回客户端的 socket

print("一个客户端建立连接成功！")


while True:
    
    # 程序阻塞，等待接收信息
    recv_data = client_socket.recv(1024)  # 最大接收1024字节
    
    # 解码，读取信息
    recv_content = recv_data.decode('gbk')
    print(f"客户端说:{recv_content}, 来自:{client_info}")
    
    # 如果接收的信息是 end,则不再接收信息
    if recv_content == "end":
        break
    
    # 发信息给客户端
    msg = input(">")
    client_socket.send(msg.encode("gbk"))

# 关闭
client_socket.close()
server_socket.close()